home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_10 / saks / genq5.cpp < prev    next >
C/C++ Source or Header  |  1994-08-08  |  768b  |  44 lines

  1. Listing 2 - non-inline member function definitions for a generic queue 
  2. using void * and an nested iterator class
  3.  
  4. //
  5. // genq5.cpp - generic queue of void *
  6. // with an iterator class
  7. //
  8.  
  9. #include "genq5.h"
  10.  
  11. void *genq::iterator::next()
  12.     {
  13.     void *pv = 0;
  14.     if (pc != 0)
  15.         {
  16.         pv = pc->element;
  17.         pc = pc->next;
  18.         }
  19.     return pv;
  20.     }
  21.  
  22. void genq::append(void *e)
  23.     {
  24.     cell *p = new cell(e, 0);
  25.     if (first == 0)
  26.         first = p;
  27.     else
  28.         last->next = p;
  29.     last = p;
  30.     }
  31.  
  32. int genq::remove(void *&e)
  33.     {
  34.     if (first == 0)
  35.         return 0;
  36.     cell *p = first;
  37.     if ((first = first->next) == 0)
  38.         last = 0;
  39.     e = p->element;
  40.     delete p;
  41.     return 1;
  42.     }
  43.  
  44.